#ifndef _ZIPUTILITY_H_INCLUDE_
#define _ZIPUTILITY_H_INCLUDE_

#include "common.h"

class ZipUtility
{
public:
    // 压缩目录到ZIP文件
    static bool ZipDirectory(const wxString& directory, const wxString& zipFilename);

    // 解压ZIP文件到目录
    static bool UnzipFile(const wxString& zipFilename, const wxString& targetDir);

    // 获取最后一次操作的错误信息
    static wxString GetLastError() { return s_lastError; }

private:
    // 递归添加目录到ZIP
    static bool AddDirectoryToZip(wxZipOutputStream& zip, const wxString& dirPath, const wxString& baseDir);

    // 添加文件到ZIP
    static bool AddFileToZip(wxZipOutputStream& zip, const wxString& filePath, const wxString& baseDir);

    // 错误信息
    static wxString s_lastError;
};

#endif // ZIPUTILITY_H
